package com.example.wangzh.mytest.view;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.widget.TextView;

import androidx.annotation.Nullable;

import com.example.wangzh.mytest.R;
import com.example.wangzh.mytest.utils.LogUtils;

@SuppressLint("AppCompatCustomView")
public class StyleTestView extends TextView {
    public static final String TAG = "StyleTestView";

    public StyleTestView(Context context) {
        super(context);
        LogUtils.i(TAG, "StyleTestView constructor0");
        init(context, null, 0, 0);
    }

    public StyleTestView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        LogUtils.i(TAG, "StyleTestView constructor1");
        init(context, attrs, 0, 0);
    }

    public StyleTestView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        LogUtils.i(TAG, "StyleTestView constructor2");
        init(context, attrs, defStyleAttr, 0);
    }

    public StyleTestView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        LogUtils.i(TAG, "StyleTestView constructor3");
        init(context, attrs, defStyleAttr, defStyleRes);
    }

    @SuppressLint("DefaultLocale")
    private void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        LogUtils.i(TAG, String.format("attrs:%s,defStyleAttr:%d,defStyleRes:%d", attrs, defStyleAttr, defStyleRes));
        if (attrs == null) {
            LogUtils.i(TAG, "attrs == null");
            return;
        }
        Resources.Theme theme = context.getTheme();
        TypedArray typedArray = theme.obtainStyledAttributes(attrs, R.styleable.StyleTestView, defStyleAttr, defStyleRes);
        LogUtils.i(TAG, "typedArray.getIndexCount()==" + typedArray.getIndexCount());
        LogUtils.i(TAG, String.format("R.styleable.StyleTestView_attr1:%d", R.styleable.StyleTestView_attr1));
        for (int i = 0; i < typedArray.getIndexCount(); i++) {
            int attr = typedArray.getIndex(i);
            LogUtils.i(TAG, String.format("typedArray[%d]:%d", i, attr));
            if (attr == R.styleable.StyleTestView_attr1) {
                String attr1 = typedArray.getString(attr);
                setText(attr1);
            }
        }
    }
}
